﻿using EnglishAuction.BUS;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EnglishAuction
{
    public partial class Register : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            txtCMND.Attributes.Add("onkeypress", "return isNumberKey(event)");
            txtEror.Text = "";
            txtEror.ForeColor = Color.Red;
            txtEror.Font.Bold = true;
            Autoload();
        }

        private void RefreshCaptcha()
        {
            string text = (Guid.NewGuid().ToString()).Substring(0, 5);
            Response.Cookies["Captcha"]["value"] = text;
            imgcaptcha.ImageUrl = "Captcha.aspx";
        }

        private void Autoload()
        {

            if (!Page.IsPostBack)
            {
                //cboGioiTinh
                /*cboGioiTinh.DataSource = new List<Object>
                                             {
                                                 new {Code = 255, Name = "---Chọn---"},
                                                 new {Code = 0, Name = "Nữ"},
                                                 new {Code = 1, Name = "Nam"}
                                             };
                cboGioiTinh.DataTextField = "Name";
                cboGioiTinh.DataValueField = "Code";
                cboGioiTinh.DataBind();

                //cboLoaiNguoiDung
                LoaiNguoiDungBUS.GetAll().Insert(0, new LoaiNguoiDung() {Id = 255, TenLoai = "---Chọn---"});
                 * */
                RefreshCaptcha();
            }
        }

        protected void btnReg_Click(object sender, EventArgs e)
        {
            if (txtCaptcha.Text.ToString() != Request.Cookies["Captcha"]["value"])
            {
                txtEror.Text = "- Mã bảo vệ không đúng.";
            }
            else if(NguoiDungBUS.CheckUserName(txtTenTaiKhoan.Text.Trim()))
            {
                txtEror.Text = "- Tài khoản này đã có người sử dụng.";
            }
            else if (NguoiDungBUS.CheckEmail(txtEmail.Text.Trim()))
            {
                txtEror.Text = "- Email này đã có người sử dụng.";
            }
            else if (NguoiDungBUS.CheckCMND(txtCMND.Text.Trim()))
            {
                txtEror.Text = "- CMND này đã có người sử dụng.";
            }
            else
            {
                var nguoiDung = new NguoiDung
                {
                    TaiKhoan = txtTenTaiKhoan.Text.Trim(),
                    MatKhau = txtMatKhau.Text.Trim(),
                    GioiTinh = rbNam.Checked ? true : rbNu.Checked,
                    HoTen = txtHoTen.Text.Trim(),
                    SoDienThoai = txtSoDienThoai.Text.Trim(),
                    NgaySinh = DateTime.Parse(txtNgaySinh.Text.Trim()),
                    LoaiNguoiDungId = 2,
                    isDelete = false,
                    Email = txtEmail.Text,
                    CMND = txtCMND.Text.Trim(),
                    DiaChi = txtDiaChi.Text.Trim()
                };

                if (NguoiDungBUS.AddNguoiDung(nguoiDung))
                {
                    txtEror.ForeColor = Color.Blue;
                    txtEror.Font.Bold = true;
                    txtEror.Text = "- Đăng ký tài khoản thành công.";
                    Clear();
                }
                else
                {
                    txtEror.Text = "- Có lỗi trong quá trình đăng ký tài khoản.";
                }
            }
            RefreshCaptcha();
        }

        private void Clear()
        {
            txtTenTaiKhoan.Text = String.Empty;
            txtMatKhau.Text = String.Empty;
            txtXacNhanMatKhau.Text = String.Empty;
            txtCMND.Text = String.Empty;
            txtDiaChi.Text = String.Empty;
            txtSoDienThoai.Text = String.Empty;
            txtNgaySinh.Text = String.Empty;
            txtEmail.Text = String.Empty;
            txtHoTen.Text = String.Empty;
        }
    }
}